Agent 模式总览
读 Agent 各动手篇之前,先扫一眼本篇:ReAct、Plan-and-Execute、Reflexion、Multi-Agent、Coding Agent 不是一个层,也不是三选一。按任务结构选型,再点进对应正文。
| 主题 | 入口 |
|---|---|
| Agent 概念与循环 | Agent 核心概念与架构 |
| Agent 题型速览 | Agent 系统高频题 |
| 最小可运行项目 | Agent 最小可运行项目 |
| 状态图编排 | [LangGraph 编排实践](/docs/ai/Agent/LangGraph 编排实践) |
| Coding Agent Harness | [Pi Agent Harness 实践](/docs/ai/Agent/Pi Agent Harness 实践) |
| 工具注册与轨迹 | 工具调用与评测实践 |
| 记忆分层 | [Agent 记忆分层实践](/docs/ai/Agent/Agent 记忆分层实践) |
主流模式地图
你要解决什么问题?
│
├─ 搞清楚 Agent 三件套(工具/记忆/规划)+ 循环
│ → Agent 核心概念与架构
│
├─ 单 agent + 几步可做完,关键是"想→做→看"
│ → ReAct(基线)
│
├─ 10+ 步、多分支,中途可能要重规划
│ → Plan-and-Execute(规划/执行解耦)
│
├─ 同一类任务反复错,要"吸取教训"
│ → + Reflexion(反思写回记忆)
│
├─ 任务需要不同专长(研究/写代码/测试/审)
│ → Multi-Agent / GroupChat(注意复杂度税)
│
├─ 真实代码仓库、终端交互、git/测试/commit
│ → Coding Agent Harness(见 Pi Agent Harness)
│
└─ 系统无 API / 只能操作 GUI
→ Computer Use Agent
记忆口诀:ReAct 管 "怎么循环";Plan-and-Execute 管 "怎么规划";Reflexion 管 "怎么反思";Multi-Agent 管 "怎么分工";Coding Agent Harness 管 "怎么落地到真实仓库"。
模式是什么
| 模式 | 维度 | 解决什么 | 典型产物 |
|---|---|---|---|
| ReAct | 控制流 | 想→做→看 循环,出错能立刻修正 | 单 agent + 工具 + observation |
| Plan-and-Execute | 控制流 | 长任务先规划再执行,中途可重规划 | Planner + Executor 双 LLM |
| Reflexion | 增强 | 失败后自我反思,反思写回记忆 | 反思日志 + 改进的下一轮 |
| Multi-Agent / GroupChat | 协作 | 多个角色分工,各司其职 | Manager + Worker agents |
| Coding Agent Harness | 落地 | 真实代码仓库交互,带 git/测试/commit | 终端型 coding agent(Claude Code / Pi) |
| Computer Use | 工具形态 | 系统无 API 时用 GUI 操作 | 截图 + 坐标点击 |
| Agentic RAG | 增强 | RAG 工具化,agent 决定何时查、查几次 | Self-RAG / CRAG / Deep Research |
| 手写 while 循环 | 编排 | 不依赖库,自己写终止条件 | while + max_steps |
| LangGraph 状态图 | 编排 | 节点/边/条件/中断/人审 | ReAct / Plan-and-Execute 状态图 |
| LangChain AgentExecutor | 编排 | 库内置 ReAct | 老式封装,灵活性差 |
常见误解
| 误解 | 实际 |
|---|---|
| Agent 模式 = ReAct 一种 | ReAct 是最常见基线;Plan-and-Execute、Reflexion、Multi-Agent 是正交增强,可叠加 |
| Multi-Agent 一定比 Single Agent 强 | Single Agent + 好工具往往够用;Multi-Agent 是复杂度税 |
| 模式越多越先进 | 任务结构决定模式;不匹配的任务用错模式会拖慢且更易崩 |
| Coding Agent = ReAct 套壳 | Coding Agent 有完整 harness(git/测试/commit/Skills/扩展),不是单 loop |
| Plan-and-Execute 一定优于 ReAct | 长任务用 Plan-and-Execute;短任务用 ReAct 更稳,规划也是成本 |
| Reflexion 永远好 | 反思模型本身可能错,记忆会越积越长,要淘汰机制 |
| Agentic RAG = 多查几次 RAG | 不止次数,agent 决定查什么 / 不查什么 / 何时改写,是路由 + 反思的组合 |
| 用 LangGraph 就要全用图 | LangGraph 适合多分支/需要人审/长任务;简单 ReAct 用手写循环更清晰 |
按任务选型
| 任务 | 优先 | 说明 |
|---|---|---|
| 固定流程 / 强合规不可逆 | 规则引擎 / 人审 | 别上 Agent |
| 单工具、3 步以内 | function call | 不必循环 |
| 多步开放、需观察修正 | ReAct | 最常见生产选择 |
| 10+ 步、可能需要重规划 | Plan-and-Execute | 规划/执行解耦 |
| 同一类任务反复错 | + Reflexion | 反思写回记忆 |
| 任务需要不同专长 | Multi-Agent / GroupChat | 注意复杂度税 |
| 真实代码仓库 | Coding Agent Harness | 见 [Pi Agent Harness 实践](/docs/ai/Agent/Pi Agent Harness 实践) |
| 系统无 API,只能操作 GUI | Computer Use | Anthropic CUA / OpenAI Operator |
| 多轮深检索 / 写研究报告 | Deep Research Agent | 检索 + 写作多轮 |
| 需要人在关键节点把关 | LangGraph 状态图 + interrupt | 见 [LangGraph 编排实践](/docs/ai/Agent/LangGraph 编排实践) |
组合关系
| 组合 | 是否常见 | 一句话 |
|---|---|---|
| ReAct + RAG 工具 | 常见 | Agent 决定何时查、查什么,见 RAG 与检索增强 |
| Plan-and-Execute + Reflexion | 常见 | 长任务 + 失败反思 |
| Multi-Agent + LangGraph 状态图 | 常见 | 角色分工 + 可中断/人审 |
| Coding Agent + 工具注册表(MCP) | 常见 | 终端交互 + 标准化扩展 |
| Agentic RAG + 多源检索 | 进阶 | 向量 + BM25 + Web,agent 路由 |
| ReAct + 反思 + Agentic RAG | 进阶 | 查→反思→再查→拒答,完整闭环 |
失败模式速查
| 模式 | 典型崩在哪 | 怎么治 |
|---|---|---|
| ReAct | 死循环、参数错填、observation 撑爆 context | [Agent Loop 死循环治理](/docs/ai/Agent/面试/Agent Loop 死循环治理);工具 schema 写细 |
| Plan-and-Execute | 计划太粗,replan 抖动 | 计划粒度可调;失败局部重规划而非全重来 |
| Reflexion | 反思本身错、记忆越长越长 | 反思要带证据(trace);记忆要淘汰 |
| Multi-Agent | 通信成本爆炸、角色串台 | max_rounds + manager;角色边界硬约束 |
| Computer Use | 截图分辨率/坐标漂移;长任务上下文丢失 | 关键信息入 long-term memory;失败回滚 |
| Coding Agent | 改完不跑测试、不重索引、不 commit | 强制 hook:必须跑 lint/test 后才允许 next step |
| Agentic RAG | 反复检索拖慢 P95、检索改写引入新噪声 | 限制最大检索轮次(常见 ≤3);加超时 |
选型决策树
任务是什么?
│
├─ 步骤固定 / 强合规不可逆
│ → 工作流 / 规则引擎 / 人审(别上 Agent)
│
├─ 单工具 / 几步可做完
│ → function call / 单轮 RAG
│
├─ 5~10 步、需查外部、需观察修正
│ → ReAct(最常见生产选择)
│
├─ 10+ 步、多分支、中途需重规划
│ → Plan-and-Execute
│
├─ 同一类任务反复错、要吸取教训
│ → + Reflexion
│
├─ 任务需要不同专长(研究/写代码/测试/审)
│ → Multi-Agent / GroupChat(注意复杂度税)
│
├─ 真实代码仓库、终端交互
│ → Coding Agent Harness
│
└─ 多轮深检索 / 写研究报告
→ Deep Research Agent
深度与正文分工
| 主题 | 详细正文 |
|---|---|
| Agent 概念与三件套 | Agent 核心概念与架构 |
| Agent 题型速览(ReAct/记忆/规划失败/评测/安全) | Agent 系统高频题 |
| 手写 ReAct 最小闭环 | Agent 最小可运行项目 |
| 状态图编排 / 人审 | [LangGraph 编排实践](/docs/ai/Agent/LangGraph 编排实践) |
| 终端型 coding agent / Skills | [Pi Agent Harness 实践](/docs/ai/Agent/Pi Agent Harness 实践) |
| 工具注册 / 轨迹 / 评测 | 工具调用与评测实践 |
| 记忆分层 | [Agent 记忆分层实践](/docs/ai/Agent/Agent 记忆分层实践) |
| Multi-Agent 框架 | [OpenManus 概览与实现原理](/docs/ai/Agent/面试/OpenManus 概览与实现原理) |
| 死循环治理 | [Agent Loop 死循环治理](/docs/ai/Agent/面试/Agent Loop 死循环治理) |
| RAG + Agent 组合 | RAG 与框架选型 §"Agent 里要查私有库" |
面试速记
- Agent 模式怎么分? 控制流(ReAct / Plan-and-Execute / Reflexion)+ 协作(Multi-Agent)+ 落地(Coding Agent / Computer Use)。
- ReAct 是什么? Reason + Act:交替推理与工具调用,用观察修正下一步。
- 何时不用 Agent? 固定流程、强合规不可逆、单工具短任务——规则/RAG/人审更合适。
- 何时上 Multi-Agent? 任务确实需要不同专长;否则 Single Agent + 好工具更稳。
- 选型第一步? 先看任务结构(步骤数、分支、可逆性),再看工具数与容错,别一上来堆框架。